package service

import (
	mapper2 "ksd-social-api/modules/user/mapper"
	"ksd-social-api/modules/user/model/vo"
	userUtils "ksd-social-api/modules/user/utils"
	"ksd-social-api/utils"
)

type UserService struct{}

var userMapper = mapper2.UserMapper{}

/**
 * @desc  根据用户id查询用户信息
 */
func (service *UserService) GetUserInfo(id uint64) (uvo *vo.UserVo) {
	// 1: 根据用户id执行查询
	user := userMapper.GetUser(id)
	// 2: 把user的数据转换到uservo中返回
	userVo := vo.UserVo{}
	// 3: 把用户user复制到uservo中
	utils.CopyProperties(&userVo, user)
	// 生日如果不为nil才进行处理
	if user.BirthDay.Unix() > 0 {
		// 获取星座
		userVo.Constellation = userUtils.GetZodiac(int(user.BirthDay.Month()), user.BirthDay.Day())
		// 获取用户生肖
		userVo.Twelve = userUtils.GetChineseZodiac(user.BirthDay.Year())
	}
	// 4: 返回
	return &userVo
}

/**
 * @desc  修改密码
 */
func (service *UserService) UpdateUserPassword(userId uint64, password string) (bool, error) {
	// 使用新的uuid更新
	uuid := utils.GetUUID()
	// 2: 获取用户唯一uuid和新密码进行加密
	return userMapper.UpdatePwd(userId, uuid, utils.Md5Slat(password, uuid))
}
